const WebSocket = require('ws')

// 创建 WebSocket 服务器，监听 8080 端口
const wss = new WebSocket.Server({
  port: 8080,
  // 允许所有来源的连接
  verifyClient: (info, done) => {
    done(true) // 接受所有客户端连接
  },
})

// 连接建立事件
wss.on('connection', (ws) => {
  // console.log('客户端已连接，当前连接数:', wss.clients.size)

  ws.on('message', (message) => {
    // console.log(`收到客户端消息: ${message}`)
    // 广播消息给所有客户端
    wss.clients.forEach((client) => {
      if (client.readyState === WebSocket.OPEN) {
        // console.log('向客户端发送消息:', message.toString())
        client.send(message.toString()) // 确保消息以字符串形式发送
      }
    })
  })

  // ws.on('close', () => {
  //   console.log('客户端断开，剩余连接数:', wss.clients.size)
  // })

  ws.on('error', (error) => {
    console.error('WebSocket 错误:', error)
  })
})

console.log('WebSocket 服务器已启动，监听端口 8080')

module.exports = wss
